package com.ctvit.cch.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ctvit.cch.core.pojo.domain.CreativeShotDesign;
import com.ctvit.cch.core.pojo.dto.creative.CreativeShotDesignGenerateSidDTO;
import com.ctvit.cch.core.pojo.dto.creative.CreativeShotDesignRegenerateSidDTO;
import com.ctvit.cch.core.pojo.vo.creative.CreativeShotFrameGetVO;

/**
 * 分镜设计Service接口
 *
 * @author heyingcheng
 * @date 2025/10/11
 */
public interface ICreativeShotDesignService extends IService<CreativeShotDesign> {

    /**
     * 生成分镜设计
     * 
     * @param dto 分镜设计生成参数
     * @return 生成结果
     */
    boolean generate(CreativeShotDesignGenerateSidDTO dto);

    /**
     * 重新生成分镜设计
     * 
     * @param dto 分镜设计生成参数
     * @return 生成结果
     */
    boolean regenerate(CreativeShotDesignRegenerateSidDTO dto);

    /**
     * 获取脚本设计详细信息
     * 
     * @param scriptId 脚本ID
     * @return 脚本设计对象
     */
    CreativeShotFrameGetVO getByScriptId(String scriptId);

    /**
     * 获取脚本设计详细信息
     * 
     * @param id 选题ID
     * @return 脚本设计对象
     */
    CreativeShotFrameGetVO getByTopicId(String topicId);

    /**
     * 更新分镜设计状态
     * 
     * @param topicId  选题ID
     * @param scriptId 脚本ID
     * @param shotId   分镜ID
     * @param status   状态名称
     * @return 更新结果
     */
    boolean updateGenerateStatus(String topicId, String scriptId, String shotId, String status);

    /**
     * 完成分镜设计
     * 
     * @param topicId  选题ID
     * @param scriptId 脚本ID
     * @param shotId   分镜ID
     * @return 完成结果
     */
    boolean completeGenerateDesign(String topicId, String scriptId, String shotId);

}